Информация о сеансе
индивидуальных пользователей может
храниться во встроенном объекте Session (Сеанс),
который является экземпляром класса
HttpSession-State. Доступ к этому объекту удобно
получать с помощью свойства Session (Сеанс)
класса Page (Страница) Класс HttpSessionState,
аналогично классу HttpApplicationState, имеет
словарь в формате "ключ — значение",
который можно использовать для хранения
как объектов, так и скалярных величин.
При реализации переменных сеанса
возникают некоторые интересные вопросы.
Состояние сеанса и небольшие фрагменты данных о предыстории обращений конкретного пользователя к конкретному Web-серверу, автоматически создаваемые сервером на машине пользователя (cookies)
По умолчанию небольшие фрагменты данных о предыстории обращений конкретного пользователя к конкретному Web-серверу, автоматически создаваемые сервером на машине пользователя (cookies), в ASP.NET используются для идентификации сеанса, в котором отправлен запрос. Но ASP.NET можно сконфигурировать так, чтобы при выполнении не создавались эти небольшие фрагменты данных о предыстории обращений конкретного пользователя к конкретному Web-серверу, обычно автоматически создаваемые сервером на машине пользователя (cookies). В такой модели идентификатор сеанса (Session ID), который обычно сохраняется в небольшом фрагменте данных о предыстории обращений конкретного пользователя к конкретному WWW-серверу, автоматически создаваемом сервером на машине пользователя (cookie), внедряется в унифицированный указатель информационного ресурса (URL). Конфигурация, где не используются небольшие фрагменты данных о предыстории обращений конкретного пользователя к конкретному Web-серверу, автоматически создаваемые сервером на машине пользователя (cookies), обсуждается в следующем разделе.
Предельное время ожидания для состояния сеанса
По умолчанию, предельное время ожидания для состояния сеанса истекает после 20 минут. Это означает, что если данный пользователь находится в состоянии ожидания (простоя) в течение указанного периода времени, сеанс прекращается, и запрос от клиента теперь будет обрабатываться как запрос от нового пользователя, причем будет создан новый сеанс. Как и другие параметры, предельное время ожидания указывается в файле конфигурации, — это мы обсудим в разделе "Конфигурация ASP.NET".
Хранение состояния сеанса
С помощью модели состояния сеанса,
которая отделяет хранение информации от
использования сохраненной информации
приложениями, ASP.NET полностью решает не
только проблему группы серверов, но и много
других проблем. Модели состояния позволяют
реализовать различные сценарии хранения
так, чтобы не затрагивать при этом код
приложения. Сервер состояния .NET не имеет
"активных" объектов для запросов
Вместо этого в конце каждого сетевого
запроса все объекты в коллекции сеанса
преобразуются в последовательную форму,
чтобы запомнить состояние сеанса. Когда тот
же самый клиент возвращается к странице,
объекты сеанса преобразуются из
последовательной формы в параллельную.
По умолчанию, состояния сеанса
кэшируются, и поэтому, как правило, хранятся
в оперативной памяти Конечно, в
конфигурации можно указать, что в качестве
кэша следует использовать память
определенной машины или же что состояния
сеанса нужно сохранять в базе данных SQL-сервера
В этих случаях данные не привязаны к
определенному серверу, и потому данные
сеанса могут безопасно использоваться
группой серверов